package com.briup.day16;

import java.io.IOException;
import java.sql.SQLException;

/**
 * @author lining
 * @date 2024/1/28 9:54
 */
public class Test3 {
    public void method(){
        //throw new Throwable();
//        throw new Exception();
        throw new RuntimeException();
//        throw new NullPointerException();
    }
    public void method2(String s){
        if(s == null){
            System.out.println("s为空");
            return;
        }
        s.length();
    }
    public void getLen(String s,String s2){
        if(s == null){
            //使用异常类的有参构造器，实现将自定义异常提示信息，打印到控制台
            //只要给父类Throwable的detailMessage 属性进行赋值后，可以实现打印异常提示信息
            throw new NullPointerException("参数s为空，不能调用方法");
        }
        s.length();
        if(s2 == null){
            throw new NullPointerException("参数s为空，不能调用方法");
        }
        s2.length();

    }
    //同时抛出了2个不同类型的异常对象，如何处理？ 1.继续抛出
    public void getIOXXX(String name) throws IOException,SQLException,ClassNotFoundException{
        if("IO".equals(name)){
            throw new IOException();//显示处理异常，编译通过
        }
        if("SQL".equals(name)){
            throw new SQLException();
        }
        if("CLASS".equals(name)){
            throw new ClassNotFoundException();
        }
    }
    //将编译异常继续抛给JVM处理；
    public static void main(String[] args) throws IOException,SQLException,ClassNotFoundException {
        Test3 t = new Test3();
        t.getLen(null,"abc");
        //main方法中显示的处理了异常：继续抛出
        t.getIOXXX("IO");
    }
}
